<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS3 Animation 小黄人</title>
    <<style>
        * {
          margin: 0;
          padding: 0;
          box-sizing: border-box;
        }
    
        body,
        html {
          width: 100%;
          height: 100%;
          display: flex;
          justify-content: center;
          align-items: center;
        }
    
        .body {
          overflow: hidden;
          position: relative;
          width: 240px;
          height: 400px;
          border: 3px solid black;
          border-radius: 115px;
          background-color: yellow;
          z-index: -2;
          animation: body1 1s alternate infinite ease-in-out 0s;
        }
    
        @keyframes body1 {
          to {
            transform: rotate(-1deg);
          }
        }
    
        .body .left_eye,
        .body .right_eye {
          position: absolute;
          width: 77px;
          height: 77px;
          background-color: #fff;
          border: 3px solid black;
          border-radius: 50%;
        }
    
        .body .left_eye {
          left: 40px;
          top: 70px;
        }
        .body .right_eye {
          right: 42px;
          top: 70px;
        }
    
        .body .left_eye .left {
          position: absolute;
          width: 50px;
          height: 15px;
          background-color: black;
          left: -45px;
          top: 10px;
          transform: rotate(30deg);
          z-index: -1;
        }
    
        .body .right_eye .right {
          position: absolute;
          width: 55px;
          height: 15px;
          background-color: black;
          left: 65px;
          top: 10px;
          transform: rotate(-30deg);
          z-index: -1;
        }
    
        .body .left_eye .left_eye_inner,
        .body .right_eye .right_eye_inner {
          position: absolute;
          animation: eye 0.2s alternate infinite ease-in;
          width: 50px;
          height: 50px;
          background: black;
          border-radius: 50%;
          left: 8px;
          top: 12px;
        }
    
        @keyframes eye {
          from {
            transform: rotate(0deg) translateX(0px);
          }
          to {
            transform: rotate(0deg) translateX(-5px);
          }
        }
    
        .body .left_eye .left_eye_inner .left_eye_inner_desc,
        .body .right_eye .right_eye_inner .right_eye_inner_desc {
          position: absolute;
          width: 17px;
          height: 17px;
          background: #fff;
          border-radius: 50%;
          right: 10px;
          top: 14px;
        }
    
        .body .mouth {
          position: absolute;
          overflow: hidden;
          top: 170px;
          width: 60px;
          height: 40px;
          left: 50%;
          transform: translate(-50%);
          background-color: #fff;
          border: 3px solid black;
          border-bottom-right-radius: 70%;
          border-bottom-left-radius: 35%;
        }
    
        .body .mouth div:nth-child(1),
        .body .mouth div:nth-child(2),
        .body .mouth div:nth-child(3) {
          position: absolute;
          width: 4px;
          height: 40px;
          background-color: black;
        }
    
        .body .mouth div:nth-child(1) {
          left: 8px;
        }
        .body .mouth div:nth-child(2) {
          left: 24px;
        }
        .body .mouth div:nth-child(3) {
          left: 40px;
        }
    
        .wapper {
          position: relative;
        }
    
        .wapper::after {
          content: '';
          position: absolute;
          width: 200px;
          height: 8px;
          bottom: -70px;
          left: 50%;
          background-color: #ddd;
          transform: perspective(400px) rotateX(-45deg) translate(-50%);
          border-radius: 50%;
          box-shadow: 0 0 10px #eee;
        }
    
        .wapper .tf {
          width: 100px;
          height: 100px;
          background-color: black;
          position: absolute;
          left: 30px;
          top: -10px;
          border-radius: 50%;
          z-index: -3;
        }
    
        .wapper .tf:nth-child(1) {
          transform: translate(0, -20px);
          animation: tf1 1s alternate infinite linear 0s;
        }
        .wapper .tf:nth-child(2) {
          animation: tf2 1s alternate infinite linear 0.5s;
        }
    
        @keyframes tf1 {
          to {
            transform: translateY(-18px);
          }
        }
    
        @keyframes tf2 {
          to {
            transform: translateY(-3px);
          }
        }
        .wapper .tf:nth-child(1)::after,
        .wapper .tf:nth-child(2)::after {
          content: '';
          width: 80px;
          height: 80px;
          position: absolute;
          background-color: #fff;
          border-radius: 50%;
          top: 10px;
          left: -2px;
        }
    
        .wapper .left_hand,
        .wapper .right_hand {
          border: 3px solid black;
          z-index: -3;
          width: 100px;
          height: 100px;
          background-color: yellow;
          position: absolute;
        }
    
        .wapper .left_hand {
          left: -27px;
          top: 210px;
          transform: rotate(-60deg);
          -webkit-transform: rotate(-60deg);
          -moz-transform: rotate(-60deg);
          -ms-transform: rotate(-60deg);
          -o-transform: rotate(-60deg);
          border-top-left-radius: 20px;
        }
    
        .wapper .left_hand::after {
          content: '';
          width: 30px;
          height: 30px;
          position: absolute;
          background-color: black;
          left: 30px;
          top: 25px;
        }
    
        .wapper .right_hand::after {
          content: '';
          width: 30px;
          height: 30px;
          position: absolute;
          background-color: black;
          right: 27px;
          top: 30px;
        }
    
        .wapper .right_hand {
          right: -30px;
          top: 210px;
          transform: rotate(60deg);
          -webkit-transform: rotate(60deg);
          -moz-transform: rotate(60deg);
          -ms-transform: rotate(60deg);
          -o-transform: rotate(60deg);
          border-top-right-radius: 20px;
        }
    
        .wapper .left_leg,
        .wapper .right_leg {
          width: 40px;
          height: 80px;
          background-color: black;
          position: absolute;
          bottom: -50px;
          z-index: -3;
        }
    
        .wapper .left_leg {
          left: 75px;
          animation: leg1 0.5s alternate infinite linear 0s;
        }
    
        .wapper .right_leg {
          right: 75px;
          animation: leg2 0.5s alternate infinite linear 0.5s;
        }
    
        @keyframes leg1 {
          to {
            bottom: -45px;
            transform: rotate(5deg);
          }
        }
    
        @keyframes leg2 {
          to {
            bottom: -45px;
            transform: rotate(-5deg);
          }
        }
    
        .wapper .left_leg .left_foot,
        .wapper .right_leg .right_foot {
          width: 50px;
          height: 30px;
          background-color: black;
          position: absolute;
          bottom: -0px;
        }
    
        .wapper .left_leg .left_foot {
          right: 15px;
          border-top-left-radius: 50%;
          border-bottom-left-radius: 50%;
        }
    
        .wapper .right_leg .right_foot {
          right: -25px;
          border-top-right-radius: 50%;
          border-bottom-right-radius: 50%;
        }
    
        .yf_1 {
          position: absolute;
          width: 400px;
          height: 100px;
          border: 3px solid black;
          background-color: blue;
          bottom: -15px;
        }
    
        .yf_2 {
          position: absolute;
          width: 140px;
          height: 60px;
          background-color: blue;
          border: 3px solid black;
          border-bottom: none;
          bottom: 81px;
          left: 45px;
        }
    
        .yf_3,
        .yf_4 {
          width: 90px;
          height: 20px;
          border: 3px solid black;
          position: absolute;
          background-color: blue;
        }
    
        .yf_3 {
          left: -60px;
          top: -15px;
          transform: rotate(32deg);
          border-bottom-left-radius: 80%;
        }
    
        .yf_4 {
          right: -65px;
          top: -15px;
          transform: rotate(-32deg);
          border-bottom-right-radius: 80%;
        }
    
        .yf_3::after,
        .yf_4::after {
          content: '';
          position: absolute;
          width: 10px;
          height: 10px;
          border-radius: 50%;
          background-color: black;
        }
        .yf_3::after {
          right: 5px;
          top: 2px;
        }
    
        .yf_4::after {
          left: 5px;
          top: 2px;
        }
      </style>
      <body>
        <div class="wapper">
          <div class="tf"></div>
          <div class="tf"></div>
          <div class="left_hand"></div>
          <div class="right_hand"></div>
          <div class="left_leg">
            <div class="left_foot"></div>
          </div>
          <div class="right_leg">
            <div class="right_foot"></div>
          </div>
          <div class="body">
            <div class="left_eye">
              <div class="left"></div>
              <div class="left_eye_inner">
                <div class="left_eye_inner_desc"></div>
              </div>
            </div>
            <div class="right_eye">
              <div class="right"></div>
              <div class="right_eye_inner">
                <div class="right_eye_inner_desc"></div>
              </div>
            </div>
            <div class="mouth">
              <div></div>
              <div></div>
              <div></div>
            </div>
            <div class="yf_1"></div>
            <div class="yf_2">
              <div class="yf_3"></div>
              <div class="yf_4"></div>
            </div>
          </div>
        </div>
      </body>
    </html>
    